package com.yimi.policyservice.service;

import com.github.pagehelper.Page;
import com.yimi.policyservice.dto.product.DisabilitiesProductDto;
import com.yimi.policyservice.dto.product.PolicyItemDto;
import com.yimi.policyservice.dto.product.PolicyProductDto;
import com.yimi.policyservice.dto.product.PolicySuppRuleDto;
import com.yimi.policyservice.param.product.ProductParam;

import java.util.List;

/**
 * @author jack
 */
public interface CaseService {

    /**
     * 创建社保方案
     * @param bean
     * @return
     */
    PolicyProductDto createSocialProduct(PolicyProductDto bean);

    Page<PolicyProductDto> searchSocialProduct(ProductParam socialproductParam);

    /**
     * 删除
     * @param ids
     */
    void delSocialProduct(List<String> ids);

    PolicyProductDto findOneSocialProduct(String id);

    /**
     * 创建选种
     * @param bean
     * @return
     */
    PolicyItemDto createSocialItem(PolicyItemDto bean);

    /**
     * 更新
     * @param bean
     */
    void updateSocialProduct(PolicyProductDto bean);

    /**
     * 更新
     * @param bean
     */
    void updatePolicySocialItem(PolicyItemDto bean);

    /**
     * 获取方案险种code
     * @param productId
     * @return
     */
    List<String> getProductCodes(String productId);

    /**
     * code
     * @param productId
     * @param code
     * @return
     */
    PolicyItemDto findOneByProductIdAnfCode(String productId, String code);
    int deletecode(String productId, String code);
    /**
     * 创建规则
     * @param bean
     * @return
     */
    PolicySuppRuleDto createSocialRule(PolicySuppRuleDto bean);



    /**
     * 搜索社保补缴规则
     * @param addrId
     * @param companyId
     * @return
     */
    Page<PolicySuppRuleDto> searchSocialRule(String addrId, String companyId,String userId);

    void deleteSocialRule(List<String> ids);


    /**
     * 获取规则
     * @param id
     * @return
     */
    PolicySuppRuleDto findSocialRule(String id);


    PolicyProductDto createAccFundProduct(PolicyProductDto bean);


    Page<PolicyProductDto> searchAccfundProduct(ProductParam accfundproductParam);

    PolicyProductDto findOneAccfundProduct(String id);

    List<String> getAccfundProductCodes(String productId);

    PolicyItemDto createAccfundItem(PolicyItemDto bean);

    void updatePolicyAccfundItem(PolicyItemDto bean);

    PolicyItemDto findOneAccfundItemByProductIdAnfCode(String productId, String code);
    int deleteAccfunCode(String productId, String code);
    void updateAccProduct(PolicyProductDto bean);

    void delAccProduct(List<String> ids);

    PolicySuppRuleDto createAccfundRule(PolicySuppRuleDto bean);


    Page<PolicySuppRuleDto> searchAccfundRule(String addrId, String companyId,String permissionUserId);

    void deleteAccfundRule(List<String> ids);

    PolicySuppRuleDto findAccfundRule(String id);

    DisabilitiesProductDto createDisableProduct(DisabilitiesProductDto bean);

    void delDisableProduct(List<String> ids);


    Page<DisabilitiesProductDto> searchDisableProduct(String companyId, String addrId,String permissionUserId);
    DisabilitiesProductDto findOneDisableProduct(String id);

    List<String> getProductGroupdCodes(String productId,String code);
}
